diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst
index efbe860..79f1207 100644
--- a/user_guide_src/source/changelog.rst
+++ b/user_guide_src/source/changelog.rst
@@ -61,22 +61,22 @@
 
    -  :doc:`Date Helper <helpers/date_helper>` changes include:
 
-      - :php:func:`now()` now works with all timezone strings supported by PHP.
-      - Added an optional third parameter to :php:func:`timespan()` that constrains the number of time units displayed.
-      - Added an optional parameter to :php:func:`timezone_menu()` that allows more attributes to be added to the generated select tag.
+      - :func:`now()` now works with all timezone strings supported by PHP.
+      - Added an optional third parameter to :func:`timespan()` that constrains the number of time units displayed.
+      - Added an optional parameter to :func:`timezone_menu()` that allows more attributes to be added to the generated select tag.
       - Deprecated ``standard_date()``, which now just uses the native ``date()`` with `DateTime constants <http://www.php.net/manual/en/class.datetime.php#datetime.constants.types>`_.
-      - Added function :php:func:`date_range()` that generates a list of dates between a specified period.
+      - Added function :func:`date_range()` that generates a list of dates between a specified period.
 
    -  :doc:`URL Helper <helpers/url_helper>` changes include:
 
-      - Deprecated *separator* options **dash** and **underscore** for function :php:func:`url_title()` (they are only aliases for '-' and '_' respectively).
-      - :php:func:`url_title()` will now trim extra dashes from beginning and end.
-      - :php:func:`anchor_popup()` will now fill the *href* attribute with the URL and its JS code will return FALSE instead.
-      - Added JS window name support to the :php:func:`anchor_popup()` function.
-      - Added support (auto-detection) for HTTP/1.1 response code 303 in :php:func:`redirect()`.
-      - Changed :php:func:`redirect()` to only choose the **refresh** method only on IIS servers, instead of all servers on Windows (when **auto** is used).
-      - Changed :php:func:`anchor()`, :php:func:`anchor_popup()`, and :php:func:`redirect()` to support protocol-relative URLs (e.g. *//ellislab.com/codeigniter*).
-      - Added an optional second parameter to both :php:func:`base_url()` and :php:func:`site_url()` that allows enforcing of a protocol different than the one in the *base_url* configuration setting.
+      - Deprecated *separator* options **dash** and **underscore** for function :func:`url_title()` (they are only aliases for '-' and '_' respectively).
+      - :func:`url_title()` will now trim extra dashes from beginning and end.
+      - :func:`anchor_popup()` will now fill the *href* attribute with the URL and its JS code will return FALSE instead.
+      - Added JS window name support to the :func:`anchor_popup()` function.
+      - Added support (auto-detection) for HTTP/1.1 response code 303 in :func:`redirect()`.
+      - Changed :func:`redirect()` to only choose the **refresh** method only on IIS servers, instead of all servers on Windows (when **auto** is used).
+      - Changed :func:`anchor()`, :func:`anchor_popup()`, and :func:`redirect()` to support protocol-relative URLs (e.g. *//ellislab.com/codeigniter*).
+      - Added an optional second parameter to both :func:`base_url()` and :func:`site_url()` that allows enforcing of a protocol different than the one in the *base_url* configuration setting.
 
    -  :doc:`HTML Helper <helpers/html_helper>` changes include:
 
@@ -86,24 +86,24 @@
 
    -  :doc:`Inflector Helper <helpers/inflector_helper>` changes include:
 
-      - Changed :php:func:`humanize()` to allow passing an input separator as its second parameter.
-      - Refactored :php:func:`plural()` and :php:func:`singular()` to avoid double pluralization and support more words.
+      - Changed :func:`humanize()` to allow passing an input separator as its second parameter.
+      - Refactored :func:`plural()` and :func:`singular()` to avoid double pluralization and support more words.
 
    -  :doc:`Download Helper <helpers/download_helper>` changes include:
 
-      - Added an optional third parameter to :php:func:`force_download()` that enables/disables sending the actual file MIME type in the Content-Type header (disabled by default).
-      - Added a work-around in :php:func:`force_download()` for a bug Android <= 2.1, where the filename extension needs to be in uppercase.
-      - Added support for reading from an existing file path by passing NULL as the second parameter to :php:func:`force_download()` (useful for large files and/or safely transmitting binary data).
+      - Added an optional third parameter to :func:`force_download()` that enables/disables sending the actual file MIME type in the Content-Type header (disabled by default).
+      - Added a work-around in :func:`force_download()` for a bug Android <= 2.1, where the filename extension needs to be in uppercase.
+      - Added support for reading from an existing file path by passing NULL as the second parameter to :func:`force_download()` (useful for large files and/or safely transmitting binary data).
 
    -  :doc:`Form Helper <helpers/form_helper>` changes include:
 
-      - :php:func:`form_dropdown()` will now also take an array for unity with other form helpers.
-      - :php:func:`form_prep()`'s second argument now only accepts a boolean value, which determines whether the value is escaped for a <textarea> or a regular <input> element.
+      - :func:`form_dropdown()` will now also take an array for unity with other form helpers.
+      - :func:`form_prep()`'s second argument now only accepts a boolean value, which determines whether the value is escaped for a <textarea> or a regular <input> element.
 
    -  :doc:`Security Helper <helpers/security_helper>` changes include:
 
-      - :php:func:`do_hash()` now uses PHP's native ``hash()`` function (supporting more algorithms) and is deprecated.
-      - :php:func:`strip_image_tags()` is now an alias for the same method in the :doc:`Security Library <libraries/security>`.
+      - :func:`do_hash()` now uses PHP's native ``hash()`` function (supporting more algorithms) and is deprecated.
+      - :func:`strip_image_tags()` is now an alias for the same method in the :doc:`Security Library <libraries/security>`.
 
    -  :doc:`Smiley Helper <helpers/smiley_helper>` changes include:
 
@@ -113,23 +113,23 @@
 
    -  :doc:`File Helper <helpers/file_helper>` changes include:
 
-      - :php:func:`set_realpath()` can now also handle file paths as opposed to just directories.
-      - Added an optional paramater to :php:func:`delete_files()` to enable it to skip deleting files such as *.htaccess* and *index.html*.
+      - :func:`set_realpath()` can now also handle file paths as opposed to just directories.
+      - Added an optional paramater to :func:`delete_files()` to enable it to skip deleting files such as *.htaccess* and *index.html*.
       - Deprecated function ``read_file()`` - it's just an alias for PHP's native ``file_get_contents()``.
 
    -  :doc:`String Helper <helpers/string_helper>` changes include:
 
       - Deprecated function ``repeater()`` - it's just an alias for PHP's native ``str_repeat()``.
       - Deprecated function ``trim_slashes()`` - it's just an alias for PHP's native ``trim()`` (with a slash as its second argument).
-      - Deprecated randomization type options **unique** and **encrypt** for funcion :php:func:`random_string()` (they are only aliases for **md5** and **sha1** respectively).
+      - Deprecated randomization type options **unique** and **encrypt** for funcion :func:`random_string()` (they are only aliases for **md5** and **sha1** respectively).
 
    -  :doc:`CAPTCHA Helper <helpers/captcha_helper>` changes include:
 
       - Added *word_length* and *pool* options to allow customization of the generated word.
       - Added *colors* configuration to allow customization for the *background*, *border*, *text* and *grid* colors.
 
-   -  :doc:`Directory Helper <helpers/directory_helper>` :php:func:`directory_map()` will now append ``DIRECTORY_SEPARATOR`` to directory names in the returned array.
-   -  :doc:`Language Helper <helpers/language_helper>` :php:func:`lang()` now accepts an optional list of additional HTML attributes.
+   -  :doc:`Directory Helper <helpers/directory_helper>` :func:`directory_map()` will now append ``DIRECTORY_SEPARATOR`` to directory names in the returned array.
+   -  :doc:`Language Helper <helpers/language_helper>` :func:`lang()` now accepts an optional list of additional HTML attributes.
    -  Deprecated the :doc:`Email Helper <helpers/email_helper>` as its ``valid_email()``, ``send_email()`` functions are now only aliases for PHP native functions ``filter_var()`` and ``mail()`` respectively.
 
 -  Database
@@ -387,12 +387,12 @@
 
    -  :doc:`Common functions <general/common_functions>` changes include:
 
-      -  Added function :php:func:`get_mimes()` to return the *application/config/mimes.php* array.
-      -  Added support for HTTP code 303 ("See Other") in :php:func:`set_status_header()`.
-      -  Removed redundant conditional to determine HTTP server protocol in :php:func:`set_status_header()`.
+      -  Added function :func:`get_mimes()` to return the *application/config/mimes.php* array.
+      -  Added support for HTTP code 303 ("See Other") in :func:`set_status_header()`.
+      -  Removed redundant conditional to determine HTTP server protocol in :func:`set_status_header()`.
       -  Changed ``_exception_handler()`` to respect php.ini *display_errors* setting.
-      -  Added function :php:func:`is_https()` to check if a secure connection is used.
-      -  Added function :php:func:`function_usable()` to check if a function exists and is not disabled by `Suhosin <http://www.hardened-php.net/suhosin/>`.
+      -  Added function :func:`is_https()` to check if a secure connection is used.
+      -  Added function :func:`function_usable()` to check if a function exists and is not disabled by `Suhosin <http://www.hardened-php.net/suhosin/>`.
 
    -  :doc:`Output Library <libraries/output>` changes include:
 
@@ -437,13 +437,13 @@
 -  Fixed a bug (#181) where a mis-spelling was in the form validation language file.
 -  Fixed a bug (#159, #163) - :doc:`Query Builder <database/query_builder>` nested transactions didn't work properly due to ``_trans_depth`` not being incremented.
 -  Fixed a bug (#737, #75) - :doc:`Pagination <libraries/pagination>` anchor class was not set properly when using initialize method.
--  Fixed a bug (#419) - :php:func:`auto_link()` didn't recognize URLs that come after a word boundary.
+-  Fixed a bug (#419) - :func:`auto_link()` didn't recognize URLs that come after a word boundary.
 -  Fixed a bug (#724) - :doc:`Form Validation Library <libraries/form_validation>` rule **is_unique** didn't check if a database connection exists.
 -  Fixed a bug (#647) - :doc:`Zip Library <libraries/zip>` internal method ``_get_mod_time()`` didn't suppress possible "stat failed" errors generated by ``filemtime()``.
 -  Fixed a bug (#157, #174) - :doc:`Image Manipulation Library <libraries/image_lib>` method ``clear()`` didn't completely clear properties.
 -  Fixed a bug where :doc:`Database Forge <database/forge>` method ``create_table()`` with PostgreSQL database could lead to fetching the whole table.
--  Fixed a bug (#795) - :doc:`Form Helper <helpers/form_helper>` :php:func:`form_open()` didn't add the default form *method* and *accept-charset* when an empty array is passed to it.
--  Fixed a bug (#797) - :php:func:`timespan()` was using incorrect seconds for year and month.
+-  Fixed a bug (#795) - :doc:`Form Helper <helpers/form_helper>` :func:`form_open()` didn't add the default form *method* and *accept-charset* when an empty array is passed to it.
+-  Fixed a bug (#797) - :func:`timespan()` was using incorrect seconds for year and month.
 -  Fixed a bug in CI_Cart::contents() where if called without a TRUE (or equal) parameter, it would fail due to a typo.
 -  Fixed a bug (#696) - make oci_execute() calls inside num_rows() non-committing, since they are only there to reset which row is next in line for oci_fetch calls and thus don't need to be committed.
 -  Fixed a bug (#406) - SQLSRV DB driver not returning resource on ``db_pconnect()``.
@@ -570,7 +570,7 @@
 -  Fixed a bug - :doc:`Routing Library <general/routing>` didn't properly handle *default_controller* in a subdirectory when a method is also specified.
 -  Fixed a bug (#953) - :doc:`post_controller_constructor hook <general/hooks>` wasn't called with a *404_override*.
 -  Fixed a bug (#1220) - :doc:`Profiler Library <general/profiling>` didn't display information for database objects that are instantiated inside models.
--  Fixed a bug (#1978) - :doc:`Directory Helper <helpers/directory_helper>` function :php:func:`directory_map()`'s return array didn't make a distinction between directories and file indexes when a directory with a numeric name is present.
+-  Fixed a bug (#1978) - :doc:`Directory Helper <helpers/directory_helper>` function :func:`directory_map()`'s return array didn't make a distinction between directories and file indexes when a directory with a numeric name is present.
 -  Fixed a bug (#777) - :doc:`Loader Library <libraries/loader>` didn't look for helper extensions in added package paths.
 -  Fixed a bug (#18) - :doc:`APC Cache <libraries/caching>` driver didn't (un)serialize data, resulting in failure to store objects.
 -  Fixed a bug (#188) - :doc:`Unit Testing Library <libraries/unit_testing>` filled up logs with error messages for non-existing language keys.
@@ -594,7 +594,7 @@
 -  Fixed a bug (#2425) - OCI8 :doc:`database <database>` driver's method ``stored_procedure()`` didn't log an error unless **db_debug** was set to TRUE.
 -  Fixed a bug (#2490) - :doc:`Database Class <database/queries>` method ``query()`` returning boolean instead of a result object for PostgreSQL-specific *INSERT INTO ... RETURNING* statements.
 -  Fixed a bug (#249) - :doc:`Cache Library <libraries/caching>` didn't properly handle Memcache(d) configurations with missing options.
--  Fixed a bug (#180) - :php:func:`config_item()` didn't take into account run-time configuration changes.
+-  Fixed a bug (#180) - :func:`config_item()` didn't take into account run-time configuration changes.
 
 Version 2.1.4
 =============
diff --git a/user_guide_src/source/general/reserved_names.rst b/user_guide_src/source/general/reserved_names.rst
index ccc17d6..a767651 100644
--- a/user_guide_src/source/general/reserved_names.rst
+++ b/user_guide_src/source/general/reserved_names.rst
@@ -25,22 +25,22 @@
 Functions
 ---------
 
--  :php:func:`is_php()`
--  :php:func:`is_really_writable()`
+-  :func:`is_php()`
+-  :func:`is_really_writable()`
 -  ``load_class()``
 -  ``is_loaded()``
 -  ``get_config()``
--  :php:func:`config_item()`
--  :php:func:`show_error()`
--  :php:func:`show_404()`
--  :php:func:`log_message()`
--  :php:func:`set_status_header()`
--  :php:func:`get_mimes()`
--  :php:func:`html_escape()`
--  :php:func:`remove_invisible_characters()`
--  :php:func:`is_https()`
--  :php:func:`function_usable()`
--  :php:func:`get_instance()`
+-  :func:`config_item()`
+-  :func:`show_error()`
+-  :func:`show_404()`
+-  :func:`log_message()`
+-  :func:`set_status_header()`
+-  :func:`get_mimes()`
+-  :func:`html_escape()`
+-  :func:`remove_invisible_characters()`
+-  :func:`is_https()`
+-  :func:`function_usable()`
+-  :func:`get_instance()`
 -  ``_exception_handler()``
 -  ``_stringify_attributes()``
 
diff --git a/user_guide_src/source/helpers/date_helper.rst b/user_guide_src/source/helpers/date_helper.rst
index 67ead03..1a552c9 100644
--- a/user_guide_src/source/helpers/date_helper.rst
+++ b/user_guide_src/source/helpers/date_helper.rst
@@ -195,7 +195,7 @@
 	:param	int 	$datestr: Date string
 	:returns:	int UNIX timestamp or FALSE on failure
 
-The opposite of the :php:func:`unix_to_time()` function. Takes a "human"
+The opposite of the :func:`unix_to_time()` function. Takes a "human"
 time as input and returns it as a UNIX timestamp. This is useful if you
 accept "human" formatted dates submitted via a form. Returns boolean FALSE
 date string passed to it is not formatted as indicated above.
@@ -323,7 +323,7 @@
 	echo timezones('UM5');
 
 
-This function is useful when used with :php:func:`timezone_menu()`.
+This function is useful when used with :func:`timezone_menu()`.
 
 timezone_menu()
 ===============
diff --git a/user_guide_src/source/helpers/form_helper.rst b/user_guide_src/source/helpers/form_helper.rst
index e88a5de..fd66f01 100644
--- a/user_guide_src/source/helpers/form_helper.rst
+++ b/user_guide_src/source/helpers/form_helper.rst
@@ -81,7 +81,7 @@
 	:param	array	$hidden: An array of hidden fields' definitions
 	:returns:	string
 
-This function is absolutely identical to :php:func:`form_open()` above,
+This function is absolutely identical to :func:`form_open()` above,
 except that it adds a *multipart* attribute, which is necessary if you
 would like to use the form to upload files with.
 
@@ -204,7 +204,7 @@
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
 	:returns:	string
 
-This function is identical in all respects to the :php:func:`form_input()`
+This function is identical in all respects to the :func:`form_input()`
 function above except that it uses the "password" input type.
 
 form_upload()
@@ -217,7 +217,7 @@
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
 	:returns:	string
 
-This function is identical in all respects to the :php:func:`form_input()`
+This function is identical in all respects to the :func:`form_input()`
 function above except that it uses the "file" input type, allowing it to
 be used to upload files.
 
@@ -231,7 +231,7 @@
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
 	:returns:	string
 
-This function is identical in all respects to the :php:func:`form_input()`
+This function is identical in all respects to the :func:`form_input()`
 function above except that it generates a "textarea" type.
 
 .. note: Instead of the *maxlength* and *size* attributes in the above example,
@@ -318,7 +318,7 @@
 associative array of options, and the third parameter will contain the
 value or values you wish to be selected.
 
-The parameter usage is identical to using :php:func:`form_dropdown()` above,
+The parameter usage is identical to using :func:`form_dropdown()` above,
 except of course that the name of the field will need to use POST array
 syntax, e.g. foo[].
 
@@ -440,7 +440,7 @@
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
 	:returns:	string
 
-This function is identical in all respects to the :php:func:`form_checkbox()`
+This function is identical in all respects to the :func:`form_checkbox()`
 function above except that it uses the "radio" input type.
 
 form_label()
@@ -501,7 +501,7 @@
 	:returns:	string
 
 Lets you generate a standard reset button. Use is identical to
-:php:func:`form_submit()`.
+:func:`form_submit()`.
 
 form_button()
 =============
@@ -660,7 +660,7 @@
 	:returns:	string
 
 Permits you to display radio buttons in the state they were submitted.
-This function is identical to the :php:func:`set_checkbox()` function above.
+This function is identical to the :func:`set_checkbox()` function above.
 
 Example::
 
@@ -704,7 +704,7 @@
 	:param	string	$suffix: Error closing tag
 	:returns:	string
 
-Similarly to the :php:func:`form_error()` function, returns all validation
+Similarly to the :func:`form_error()` function, returns all validation
 error messages produced by the :doc:`Form Validation Library
 <../libraries/form_validation>`, with optional opening and closing tags
 around each of the messages.
diff --git a/user_guide_src/source/helpers/html_helper.rst b/user_guide_src/source/helpers/html_helper.rst
index cc0f2d3..1016d3b 100644
--- a/user_guide_src/source/helpers/html_helper.rst
+++ b/user_guide_src/source/helpers/html_helper.rst
@@ -286,7 +286,7 @@
 	:param	array	$attributes: HTML attributes
 	:returns:	string
 
-Identical to :php:func:`ul()`, only it produces the <ol> tag for
+Identical to :func:`ul()`, only it produces the <ol> tag for
 ordered lists instead of <ul>.
 
 meta()
diff --git a/user_guide_src/source/helpers/security_helper.rst b/user_guide_src/source/helpers/security_helper.rst
index b06f78d..cf9854c 100644
--- a/user_guide_src/source/helpers/security_helper.rst
+++ b/user_guide_src/source/helpers/security_helper.rst
@@ -97,7 +97,7 @@
 
 This is a security function that converts PHP tags to entities.
 
-.. note: :php:func:`xss_clean()` does this automatically, if you use it.
+.. note: :func:`xss_clean()` does this automatically, if you use it.
 
 Example::
 
diff --git a/user_guide_src/source/helpers/smiley_helper.rst b/user_guide_src/source/helpers/smiley_helper.rst
index cfb4acb..3fad253 100644
--- a/user_guide_src/source/helpers/smiley_helper.rst
+++ b/user_guide_src/source/helpers/smiley_helper.rst
@@ -46,7 +46,7 @@
 In your `application/controllers/` folder, create a file called
 smileys.php and place the code below in it.
 
-.. important:: Change the URL in the :php:func:`get_clickable_smileys()`
+.. important:: Change the URL in the :func:`get_clickable_smileys()`
 	function below so that it points to your smiley folder.
 
 You'll notice that in addition to the smiley helper, we are also using
@@ -100,7 +100,7 @@
 	$image_array = get_smiley_links("http://example.com/images/smileys/", "comment_textarea_alias");
 
 To map the alias to the field id, pass them both into the
-:php:func:`smiley_js()` function::
+:func:`smiley_js()` function::
 
 	$image_array = smiley_js("comment_textarea_alias", "comments");
 
diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst
index b396d9a..74e87e2 100644
--- a/user_guide_src/source/installation/upgrade_300.rst
+++ b/user_guide_src/source/installation/upgrade_300.rst
@@ -261,7 +261,7 @@
 String helper repeater()
 ========================
 
-:doc:`String Helper <../helpers/string_helper>` function :php:func:`repeater()` is now just an alias for
+:doc:`String Helper <../helpers/string_helper>` function :func:`repeater()` is now just an alias for
 PHP's native ``str_repeat()`` function. It is deprecated and scheduled for removal in CodeIgniter 3.1+.
 
 .. note:: This function is still available, but you're strongly encouraged to remove its usage sooner
@@ -270,7 +270,7 @@
 String helper trim_slashes()
 ============================
 
-:doc:`String Helper <../helpers/string_helper>` function :php:func:`trim_slashes()` is now just an alias
+:doc:`String Helper <../helpers/string_helper>` function :func:`trim_slashes()` is now just an alias
 for PHP's native ``trim()`` function (with a slash passed as its second argument). It is deprecated and
 scheduled for removal in CodeIgniter 3.1+.
 
@@ -282,8 +282,8 @@
 
 :doc:`Email Helper <../helpers/email_helper>` only has two functions
 
- - :php:func:`valid_email()`
- - :php:func:`send_email()`
+ - :func:`valid_email()`
+ - :func:`send_email()`
 
 Both of them are now aliases for PHP's native ``filter_var()`` and ``mail()`` functions, respectively.
 Therefore the :doc:`Email Helper <../helpers/email_helper>` altogether is being deprecated and
@@ -333,7 +333,7 @@
 String helper random_string() types 'unique' and 'encrypt'
 ==========================================================
 
-When using the :doc:`String Helper <../helpers/string_helper>` function :php:func:`random_string()`,
+When using the :doc:`String Helper <../helpers/string_helper>` function :func:`random_string()`,
 you should no longer pass the **unique** and **encrypt** randomization types. They are only
 aliases for **md5** and **sha1** respectively and are now deprecated and scheduled for removal
 in CodeIgniter 3.1+.
@@ -344,7 +344,7 @@
 URL helper url_title() separators 'dash' and 'underscore'
 =========================================================
 
-When using the :doc:`URL Helper <../helpers/url_helper>` function :php:func:`url_title()`, you
+When using the :doc:`URL Helper <../helpers/url_helper>` function :func:`url_title()`, you
 should no longer pass **dash** or **underscore** as the word separator. This function will
 now accept any character and you should just pass the chosen character directly, so you
 should write '-' instead of 'dash' and '_' instead of 'underscore'.
diff --git a/user_guide_src/source/libraries/language.rst b/user_guide_src/source/libraries/language.rst
index d288cd6..e772e8e 100644
--- a/user_guide_src/source/libraries/language.rst
+++ b/user_guide_src/source/libraries/language.rst
@@ -79,7 +79,7 @@
 -----------------------------------
 
 This feature has been deprecated from the language library and moved to
-the :php:func:`lang()` function of the :doc:`Language Helper
+the :func:`lang()` function of the :doc:`Language Helper
 <../helpers/language_helper>`.
 
 Auto-loading Languages
